'transition-property'ì ìŽêž° ì€íìŒ ì ìì ëí ì¬ìžµ ë¶ìì íµíŽ CSS ížëì§ì ì ê°ë ¥í êž°ë¥ì íì©íŽ ë³Žìžì. ë¶ëëœê³ ë§€ë ¥ì ìž ì¹ ì ëë©ìŽì ì ìí ìì ìí ì ì ë°©ë²ì ë°°ì°ìžì.
CSS ìì ì€íìŒ: ížëì§ì ì§ì ì ì ì ë§ì€í°íêž°
CSS ížëì§ì
ì CSS ìì±ì ë³íì ì ëë©ìŽì
íšê³Œë¥Œ 죌ë ê°ë ¥íê³ íšìšì ìž ë°©ë²ì ì ê³µíì¬ ì¹ ìží°íìŽì€ì ìëì±ê³Œ ìžë šë¯žë¥Œ ëíŽì€ëë€. íšê³Œì ìž ížëì§ì
ì ë§ëë íµì¬ì ížëì§ì
ìŽ ììëë ìŽêž° ìíìž ìì ì€íìŒì ì ìíë ë°©ë²ì ìŽíŽíë ê²ì
ëë€. ìŽ êžììë transition-property
ì ìí 곌 ížëì§ì
ì ë¶ëëœê³ ììž¡ ê°ë¥íê² ë§ëë ë°©ë²ì í구íë©° ìŽ ê°ë
ì ì¬ìžµì ìŒë¡ ë€ë£¹ëë€.
CSS ížëì§ì ì Ʞ볞 ì늬 ìŽíŽíêž°
ìì ì€íìŒì ëíŽ ììží ìì볎Ʞ ì ì CSS ížëì§ì ì Ʞ볞 êµ¬ì± ìì륌 ê°ëší ìŽíŽë³Žê² ìµëë€:
- transition-property: ížëì§ì íšê³Œë¥Œ ì ì©í CSS ìì±ì ì§ì í©ëë€.
- transition-duration: ížëì§ì ìŽ ì§ìëë ìê°ì ì ìí©ëë€.
- transition-timing-function: ížëì§ì
ì ìë 곡ì ì ì ìŽí©ëë€. ìŒë°ì ìž ê°ìŒë¡ë
ease
,linear
,ease-in
,ease-out
,ease-in-out
ìŽ ììµëë€. ì¬ì©ì ì ì íë¹ ë² ì§ìŽ ê³¡ì ì ì¬ì©í ìë ììµëë€. - transition-delay: ížëì§ì ìŽ ììëêž° ì ì ì§ì° ìê°ì ì§ì í©ëë€.
ìŽ ìì±ë€ì ëšì¶ ìì±ìž transition
ìŒë¡ ê²°í©íì¬ CSS륌 ë ê°ê²°íê² ë§ë€ ì ììµëë€:
transition: property duration timing-function delay;
ì륌 ë€ìŽ:
transition: background-color 0.3s ease-in-out, color 0.5s linear 0.1s;
ìŽ ìì ë background-color
륌 0.3ìŽ ëì ease-in-out íìŽë° íšìë¡ ì ííê³ , color
ë 0.1ìŽ ì§ì° í 0.5ìŽ ëì linear íìŽë° íšìë¡ ì íí©ëë€.
ìì ì€íìŒ ì ìì ì€ìì±
ìì ì€íìŒì ížëì§ì ìŽ ížëŠ¬ê±°ëêž° ì ì CSS ìì± ê°ì ëë€. ìì ì€íìŒìŽ ëª ìì ìŒë¡ ì ìëì§ ììŒë©Ž ëžëŒì°ì ë ìì±ì ìŽêž°(Ʞ볞) ê° ëë ë¶ëªš ìììì ììë ê°ì ì¬ì©í©ëë€. ìŽë í¹í Ʞ볞ê°ìŽ ëª ííì§ ìì ìì±ì ë€ë£° ë ììì¹ ëª»í ìŽìí ížëì§ì ì ì ë°í ì ììµëë€.
ììì ë§ì°ì€ë¥Œ ì¬ë žì ë opacity
륌 0ìì 1ë¡ ì ííê³ ì¶ë€ê³ ê°ì íŽ ëŽ
ìë€. ìŽêž°ì opacity: 0
ì ëª
ìì ìŒë¡ ì€ì íì§ ììŒë©Ž, íŽë¹ ììë ìŽë¯ž (ììëê±°ë ë€ë¥ž CSS ê·ì¹ì ìíŽ ì ìë) í¹ì í¬ëª
ë ê°ì ê°ì§ ì ììµëë€. ìŽ ê²œì° ížëì§ì
ì 0ìŽ ìë Ʞ졎 í¬ëª
ë ê°ìì ììëìŽ ìŒêŽì± ìë íšê³Œë¥Œ ë³ê² ë©ëë€.
ìì :
.element {
/* Initial state: Opacity explicitly set to 0 */
opacity: 0;
transition: opacity 0.3s ease-in-out;
}
.element:hover {
opacity: 1;
}
ìŽ ìì ììë opacity: 0
ì ëª
ìì ìŒë¡ ì€ì íšìŒë¡ìš ížëì§ì
ìŽ íì ìë €ì§ ììž¡ ê°ë¥í ìíìì ììëëë¡ ë³Žì¥í©ëë€.
ìì ì€íìŒ ì ì: ëªšë² ì¬ë¡
CSS ížëì§ì ìì ìì ì€íìŒì ì ìíêž° ìí ëª ê°ì§ ëªšë² ì¬ë¡ë ë€ì곌 ê°ìµëë€:
- íì ìì ì€íìŒì ëª ìì ìŒë¡ ì ìíìžì: Ʞ볞ê°ìŽë ììë ê°ì ì졎íì§ ë§ìžì. ìŽë ìŒêŽì±ì 볎ì¥íê³ ììì¹ ëª»í ëìì ë°©ì§í©ëë€.
- ììì Ʞ볞 ìíìì ìì ì€íìŒì ì ìíìžì: ìì ì€íìŒ ì ìžì hoverë ë€ë¥ž ìí ì¢ ì ê·ì¹ìŽ ìë ììì ìŒë° CSS ê·ì¹ì ë°°ì¹íìžì. ìŽë ê² í멎 ìŽë€ ê°ìŽ ììì ìžì§ ëª ííŽì§ëë€.
- ììì ì ìíìžì:
color
,font-size
,line-height
ì ê°ì ìì±ì ë¶ëªš ììë¡ë¶í° ììë°ìµëë€. ìŽë¬í ìì±ì ížëì§ì ì ì ì©í ê²œì° ìììŽ ìì ê°ì ìŽë€ ìí¥ì ë¯žì¹ ì ìëì§ ê³ ë €íŽìŒ í©ëë€. - ëžëŒì°ì ížíì±ì ê³ ë €íìžì: ìµì ëžëŒì°ì ë ìŒë°ì ìŒë¡ ížëì§ì ì ìŒêŽëê² ì²ëЬíì§ë§, 구í ëžëŒì°ì ììë ìŽì íììŽ ëíë ì ììµëë€. íì ì¬ë¬ ëžëŒì°ì ìì ížëì§ì ì í ì€ížíì¬ í¬ë¡ì€ ëžëŒì°ì ížíì±ì íìžíìžì. Autoprefixerì ê°ì ë구ë íìí ë²€ë í늬íœì€ë¥Œ ì¶ê°íë ë° ëììŽ ë ì ììµëë€.
ì€ì©ì ìž ìì ë° ì¬ì© ì¬ë¡
ë€ìí ížëì§ì ìë늬ì€ìì ìì ì€íìŒì ì ìíë ë°©ë²ì ëí ëª ê°ì§ ì€ì©ì ìž ìì 륌 ìŽíŽë³Žê² ìµëë€:
1. ìì ížëì§ì : 믞ë¬í 배겜ì ë³ê²œ
ìŽ ìì ë ë§ì°ì€ë¥Œ ì¬ë žì ë ê°ëší 배겜ì ížëì§ì
ì 볎ì¬ì€ëë€. ìŽêž° background-color
륌 ëª
ìì ìŒë¡ ì ìíë ë°©ë²ì íìžíìžì.
.button {
background-color: #f0f0f0; /* Initial background color */
color: #333;
padding: 10px 20px;
border: none;
cursor: pointer;
transition: background-color 0.3s ease-in-out;
}
.button:hover {
background-color: #ddd; /* Hover background color */
}
2. ìì¹ ížëì§ì : ìì ë¶ëëœê² ìŽëíêž°
ìŽ ìì ë transform: translateX()
륌 ì¬ì©íì¬ ììì ìì¹ë¥Œ ì ííë ë°©ë²ì 볎ì¬ì€ëë€. ìŽêž° ìì¹ë `transform: translateX(0)`ì ì¬ì©íì¬ ì€ì ë©ëë€. ìŽë í¹í Ʞ졎 transform ìì±ì ë®ìŽìž ë ë§€ì° ì€ìí©ëë€.
.box {
position: relative;
width: 100px;
height: 100px;
background-color: #007bff;
color: white;
transform: translateX(0); /* Initial position */
transition: transform 0.5s ease-in-out;
}
.box:hover {
transform: translateX(50px); /* Move 50px to the right */
}
3. í¬êž° ížëì§ì : ìì íì¥ ë° ì¶ì
ìŽ ìì ë ììì ëìŽë¥Œ ì ííë ê²ì 볎ì¬ì€ëë€. íµì¬ì ìŽêž° ëìŽë¥Œ ëª ìì ìŒë¡ ì€ì íë ê²ì ëë€. `height: auto`륌 ì¬ì©íë ê²œì° ížëì§ì ìŽ ììž¡ ë¶ê°ë¥í ì ììµëë€.
.collapsible {
width: 200px;
height: 50px; /* Initial height */
overflow: hidden;
background-color: #f0f0f0;
transition: height 0.3s ease-in-out;
}
.collapsible.expanded {
height: 150px; /* Expanded height */
}
ìŽ ê²œì°, JavaScript륌 ì¬ì©íì¬ .expanded
íŽëì€ë¥Œ í êží©ëë€.
4. í¬ëª ë ížëì§ì : ìì íìŽë ìž/ìì
ìì ìžêžíë¯ìŽ, í¬ëª ë ížëì§ì ì íí ì¬ì©ë©ëë€. ì¬êž°ì ì ìë ììì ì 볎ì¥íë ê²ì ë§€ì° ì€ìí©ëë€. í¹í ìŽêž°ì ìšê²šì§ ììë ì ëë©ìŽì ì§ì°ìŽ ìë ììì ì ì©í©ëë€.
.fade-in {
opacity: 0; /* Initial opacity */
transition: opacity 0.5s ease-in;
}
.fade-in.visible {
opacity: 1;
}
ë€ì íë², ìŒë°ì ìŒë¡ JavaScript륌 ì¬ì©íì¬ .visible
íŽëì€ë¥Œ ì¶ê°í©ëë€.
ê³ êž êž°ì : CSS ë³ì íì©íêž°
CSS ë³ì(ì¬ì©ì ì ì ìì±)ë í¹í ë³µì¡í ì ëë©ìŽì ìŽë ì¬ì¬ì© ê°ë¥í 컎í¬ëížë¥Œ ë€ë£° ë ížëì§ì ìì ì€íìŒì êŽëЬíë ë° ë§€ì° ì ì©í ì ììµëë€. ìì±ì ìŽêž° ê°ì ë³ìì ì ì¥í멎 ì¬ë¬ ê³³ìì ìœê² ì ë°ìŽížíê³ ìŒêŽì±ì 볎ì¥í ì ììµëë€.
ìì :
:root {
--initial-background: #ffffff; /* Define the initial background color */
}
.element {
background-color: var(--initial-background); /* Use the variable */
transition: background-color 0.3s ease-in-out;
}
.element:hover {
background-color: #f0f0f0;
}
ìŽ ì ê·Œ ë°©ìì ì¬ì©ì ì ížëë ë€ë¥ž ììžì ë°ëŒ ìŽêž° ê°ì ëì ìŒë¡ ë³ê²œíŽìŒ í ë í¹í ì ì©í©ëë€.
ìŒë°ì ìž ížëì§ì 묞ì íŽê²°
ì ì€íê² ê³ííëëŒë CSS ížëì§ì ì 묞ì ê° ë°ìí ì ììµëë€. ë€ìì ëª ê°ì§ ìŒë°ì ìž ë¬žì ì íŽê²° ë°©ë²ì ëë€:
- ížëì§ì
ìŽ ë°ìíì§ ìì:
transition-property
ì ì ííë €ë ìì±ìŽ í¬íšëìŽ ìëì§ íìžíìžì.- ìì±ì ìì ê°ê³Œ ë ê°ìŽ ë€ë¥žì§ íìžíìžì.
- CSSì ì€íê° ìëì§ íìžíìžì.
- ììê° ìì CSS ê·ì¹ìì ì¶©ëíë ì€íìŒì ììë°ê³ ìì§ ììì§ íìžíìžì.
- ëêž°ê±°ë ë¶ëëœì§ ìì ížëì§ì
:
width
,height
,top
/left
ì ê°ìŽ ë ìŽìììŽë íìžíž 늬íë¡ì°ë¥Œ ì ë°íë ìì±ì ížëì§ì ì íŒíìžì. ëìtransform
ìŽëopacity
륌 ì¬ì©íìžì.- ê°ë¥í ëë§ë€
transform
ìŽëopacity
ì ê°ì íëìšìŽ ê°ì ìì±ì ì¬ì©íìžì. - ëžëŒì°ì ì²ëЬ ì€ë²í€ë륌 ìµìííêž° ìíŽ CSSì JavaScript륌 ìµì ííìžì.
- ê°ì¥ ë¶ëë¬ìŽ ê³¡ì ì ì°Ÿêž° ìíŽ ë€ìí
transition-timing-function
ê°ì ì€ííŽ ë³Žìžì.
- ììì¹ ëª»í ìì ê°:
- ì íëë 몚ë ìì±ì ëíŽ ìì ì€íìŒì ëª ìì ìŒë¡ ì ìíëì§ ë€ì íìžíìžì.
- ëžëŒì°ì ê°ë°ì ë구ìì ìì륌 ê²ì¬íì¬ ìì±ì ê³ì°ë ê°ì íìžíìžì.
- ìì곌 ê·žê²ìŽ ìì ê°ì 믞ì¹ë ìí¥ì ëíŽ ìžì§íìžì.
ì ê·Œì± ê³ ë €ì¬í
CSS ížëì§ì ì ì¬ì©ì 겜íì í¥ììí¬ ì ìì§ë§, ì ê·Œì±ì ê³ ë €íë ê²ìŽ ë§€ì° ì€ìí©ëë€. ìŒë¶ ì¬ì©ìë ì ëë©ìŽì ì 믌ê°íê±°ë, ì ëë©ìŽì ìŽ ì£Œì륌 ì°ë§íê² íê±°ë ë°©í¥ ê°ê°ì ìê² ë§ëë ìžì§ ì¥ì 륌 ê°ì§ ì ììµëë€.
CSS ížëì§ì ì ëí ëª ê°ì§ ì ê·Œì± íì ëë€:
- ì ëë©ìŽì
ì ë¹íì±íí ë°©ë²ì ì ê³µíìžì:
prefers-reduced-motion
믞ëìŽ ì¿ŒëŠ¬ë¥Œ ì¬ì©íì¬ ì¬ì©ìê° ìì€í ì€ì ìì ëì ì€ìŽêž°ë¥Œ ìì²íëì§ ê°ì§íìžì.@media (prefers-reduced-motion: reduce) { .element { transition: none !important; /* Disable transitions */ } }
- ì ëë©ìŽì ì ì§§ê³ ë¯žë¬íê² ì ì§íìžì: ìëì ìŒ ì ìë êžžê³ ë³µì¡í ì ëë©ìŽì ì íŒíìžì.
- ì믞 ìë ì ëë©ìŽì ì ì¬ì©íìžì: ì ëë©ìŽì ì ìê°ì íŒëë°±ì ì ê³µíê±°ë ì¬ì©ìì 죌ì륌 ì ëíë ë± ëª©ì ìŽ ììŽìŒ í©ëë€.
- ì ëë©ìŽì ìŽ í€ë³Žëë¡ ì ê·Œ ê°ë¥íëë¡ ë³Žì¥íìžì: ì ëë©ìŽì ìŽ ë§ì°ì€ ížë²ì ìíŽ ížëŠ¬ê±°ëë€ë©Ž, ëìŒí ì ëë©ìŽì ì ížëŠ¬ê±°íë ëë±í í€ë³Žë ìížìì©ìŽ ìëì§ íìžíìžì.
ê²°ë¡ : CSS ížëì§ì êž°ì ë§ì€í°íêž°
ìì ì€íìŒ ì ìì ì€ìì±ì ìŽíŽíê³ ëªšë² ì¬ë¡ë¥Œ ë°ë¥Žë©Ž, ì¹ ì í늬ìŒìŽì ì ì¬ì©ì 겜íì í¥ììí€ë ë¶ëëœê³ ììž¡ ê°ë¥íë©° ë§€ë ¥ì ìž CSS ížëì§ì ì ë§ë€ ì ììµëë€. íì ìì ì€íìŒì ëª ìì ìŒë¡ ì ìíê³ , ìì ë° ëžëŒì°ì ížíì±ì ì ìíë©°, ížëì§ì ìŽ í¬ì©ì ìŽê³ ì¬ì©ì ì¹íì ìŽëë¡ ì ê·Œì±ì ê³ ë €íë ê²ì ìì§ ë§ìžì.
ë€ìí ìì±, íìŽë° íšì, êž°ì ì ì€ííì¬ CSS ížëì§ì ì 몚ë ì ì¬ë ¥ì ë°ííê³ ì¹ ëììžì ìëª ì ë¶ìŽë£ìŒìžì. íìŽì ë¹ë©° ìŠê±°ìŽ ìœë© ëìêžž ë°ëëë€!